package org.jaaksi.commondemo;

import android.app.Activity;
import android.app.Dialog;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.Gravity;
import android.view.ViewGroup;
import android.widget.LinearLayout;

/**
 * Created by fuchaoyang on 2018/3/8.<br/>
 * description：
 * blog: 关于Dialog你可能不知道的一些事
 */

public class TestDialogActivity extends Activity {
  private Dialog mDialog;
  private LinearLayout mLinearLayout;

  @Override protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mDialog = new Dialog(this, R.style.dialog_pickerview);
    mLinearLayout = new LinearLayout(this);
    ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(200, 200);
    // todo 这里设置params应该是没用的，setcontentview的时候并不会判断contentview是否包含params
    // 测试，如果不传这里传固定宽高的params，setlayoutparams不设置，最后showdialog之后，看mLinearLayout的layoutparams
    // 测试，这里set，setContentView的时候也set不同的，看看mLinearLayout的layoutparams
    //mLinearLayout.setLayoutParams(params);
    LinearLayout child = new LinearLayout(this);
    child.setBackgroundColor(Color.BLUE);
    child.setLayoutParams(params);
    mLinearLayout.addView(child);
    mLinearLayout.setBackgroundColor(Color.RED);
    //linearLayout.setLayoutParams(new ViewGroup.LayoutParams());
    // 这里给LinearLayout设置layoutparams是无效的，如果要设置，调用dialog.setContentView(contentView,params)方法

    // 不带传params参数，内部调用的是即充满整个window
    // setContentView(view, new ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT));
    mDialog.setContentView(mLinearLayout/*, params*/);
    // setlayout是控制window的大小。
    //mDialog.getWindow().setLayout(-1, -2);
    mDialog.getWindow().setGravity(Gravity.BOTTOM);
    // 这个是点击window外部消失
    mDialog.setCanceledOnTouchOutside(true);
  }
}
